home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 12 - 1996 / 12.02 Feb 96 / Adding Scripts to Menus / Scripts MenuCode / SCScriptsMenu.h < prev    next >
Encoding:
Text File  |  1995-06-15  |  1.7 KB  |  64 lines  |  [TEXT/MMCC]

  1. // ===========================================================================
  2. // SCScriptsMenu.h -- handle the scripts menu
  3. // ===========================================================================
  4. // © 1995 James Kaput, Jeremy Roschelle SimCalc Project
  5.  
  6. // This source code may be compiled into a commercial or non-commercial application
  7. // providing that the hmnu resource 140 is included and the following help balloon appears
  8. // when the user points at the script menu with Balloon help enabled:
  9.  
  10. //ScriptMenu
  11. //Copyright © 1995 
  12. //By Jeremy Roschelle
  13. //Use this menu to run scripts.
  14.  
  15. #pragma once
  16.  
  17. #include <OSA.h>
  18.  
  19. class SCScriptsMenuHandler : public LAttachment
  20. {
  21.     public:
  22.             SCScriptsMenuHandler(ResIDT inMenuID, 
  23.                              short inVRefNum = 0, 
  24.                              long inParId = 0, 
  25.                              Int16 inMax = 32 );
  26.                 
  27.             
  28.             virtual ~SCScriptsMenuHandler();
  29.                                 
  30.             // attach script from open file dialog
  31.             void AttachScriptDialog();
  32.             
  33.             void AppendScript(FSSpec &inScriptFile);
  34.             void RemoveScript(Int16 inIndex);
  35.             
  36.             // releases memory occupied by scripts, forces reloading from disk
  37.             void PurgeScripts();
  38.             
  39.     protected:
  40.         virtual void    ExecuteSelf(MessageT inMessage, void *ioParam);
  41.         void            AttachBalloonHelp(FSSpec &inScriptFile, Int16 inIndex);
  42.         void            RemoveBalloonHelp(Int16 inIndex);
  43.         void            MakeBalloonData(Str255 inHelp, char *ioBuffer);
  44.         void            InsertBalloonData(Int16 inIndex, char *inBuffer);
  45.         
  46.         ResIDT    mMenuID;
  47.         LList    mScripts;
  48. };
  49.  
  50. class SCScriptsMenuItem    {
  51.     public:
  52.         SCScriptsMenuItem(FSSpec &inScriptFile)
  53.             : mFileSpec(inScriptFile), mScriptID(kOSANullScript) {};
  54.             
  55.         virtual ~SCScriptsMenuItem();
  56.         
  57.         virtual OSErr    OpenScript();
  58.         virtual OSErr    RunScript();
  59.         virtual void    PurgeScript();
  60.     
  61.     protected:
  62.         OSAID    mScriptID;
  63.         FSSpec    mFileSpec;    
  64. };